package org.longteng.sensitive;

import java.lang.reflect.Field;

/**
 * 敏感数据加解密接口，在StartApp中@Bean来实现（如Jasypt加密库）
 */
public interface ISensitiveDataEncrypt {

    /**
     * 加密
     * @param param 可能是实体或string字段
     * @return 返回加密串，按注解指定mod处理
     */
    public Object encrypt(Object param);

    /**
     * 加密
     * @param param 可能是实体或string字段
     * @param field 指定实体的field，以取注解
     * @return 返回加密串，按注解指定mod处理
     */
    public Object encrypt(Object param, Field field);

    /**
     * 解密
     * @param result
     * @return 可能是实体或string字段
     */
    public Object decrypt(Object result);
}
